跳到主要内容

数据库备份工具 XtraBackup

xtrabackup 是什么?

XtraBackup 是一个开源的 MySQL 数据库备份软件,由 Percona 开发。它为 MySQL 和 MariaDB 提供了一种非阻塞的备份方式,这意味着在备份期间数据库可以继续正常运行。XtraBackup 特别适用于大型数据库,因为它可以在不中断数据库服务的情况下创建快速且一致的备份。

使用 XtraBackup 的基本步骤:

  1. 安装 XtraBackup:首先需要在服务器上安装 XtraBackup。根据操作系统的不同,安装步骤也会有所不同。

  2. 创建备份:使用 XtraBackup 创建备份通常涉及执行一个命令,该命令会创建数据库的全备份。

  3. 备份还原:备份完成后,可以将备份还原到数据库服务器上。

  4. 增量备份:XtraBackup 还支持增量备份,这意味着只备份自上次备份以来发生变化的数据。

假设你有一个运行在 Linux 服务器上的 MySQL 或 MariaDB 数据库,以下是一个基本的备份和还原过程:

sudo apt-get install percona-xtrabackup

# 创建全备份
# 这里 `/path/to/backup/dir` 是你想要存放备份的目录。
xtrabackup --backup --target-dir=/path/to/backup/dir

# 准备备份(使其可用于还原)
# --backup 表示进行备份操作。
# --target-dir 指定备份文件存储的目录。
xtrabackup --prepare --target-dir=/path/to/backup/dir

还原备份

# 停止 MySQL 服务
sudo systemctl stop mysql

# 将备份文件复制到 MySQL 的数据目录
sudo xtrabackup --copy-back --target-dir=/path/to/backup/dir

# 更改数据目录的权限
sudo chown -R mysql:mysql /var/lib/mysql

# 重新启动 MySQL 服务
sudo systemctl start mysql
  • --copy-back 用于将备份数据复制回 MySQL 数据目录。
  • 更改权限确保 MySQL 服务器有权访问这些文件。
  • 根据你的系统和 MySQL 的配置,停止和启动 MySQL 的命令可能有所不同。

创建增量备份

# --incremental-basedir 指定上一个全备份或增量备份的目录,以便只备份自那时以来发生变化的数据。
xtrabackup --backup --target-dir=/path/to/inc/backup --incremental-basedir=/path/to/full/backup